package nyist.media.service;

import nyist.media.entity.ClassRoom;
import nyist.media.entity.admin.Admin;
import nyist.media.enums.RoomType;
import nyist.media.page.AppPage;
import nyist.media.vo.ClassRoomVO;
import org.springframework.data.domain.PageRequest;

/**
 * @author : dcf
 * @date : 2019/3/15
 */

public interface ClassRoomService {

    /**
     * 分页查询教室信息
     *
     * @param keyword     搜索关键字
     * @param pageRequest 分页对象
     * @param type        教室类型
     * @return 教室列表
     */
    AppPage<ClassRoomVO> findPage(String keyword, RoomType type, PageRequest pageRequest);

    /**
     * 新增教室
     *
     * @param classRoom 教室信息
     * @param currentInfo 当前登录对象
     */
    void save(ClassRoom classRoom,Admin currentInfo);

    /**
     * 查询教室详情
     *
     * @param id 教室ID
     * @return 教室详情信息
     */
    ClassRoomVO findDetail(Long id);

    /**
     * 申请教室
     *
     * @param id          教室ID
     * @param currentInfo 申请人信息
     */
    void apply(Long id, Admin currentInfo);

    /**
     * 删除教室
     *
     * @param id 教室ID
     */
    void deleteRoom(Long id);

    /**
     * 归还教室
     * @param id 教室ID
     */
    void returnRoom(Long id);
}

